/*
    因为js引擎是单线程，如果代码从头到尾都是同步代码，且遇上某段代码执行比较耗费时间，那将导致整个线程阻塞，
页面卡顿等不良后果。
    EventLoop和消息队列都是处理异步编程的，EventLoop中包含宏任务和微任务，在一个EventLoop中，js引擎会先
清空微任务队列中的回调，再执行宏任务队列中的回调，也就是说promise.then的回调优先级比setTimeout的高。

*/